package com.backend.modules.statistics.task;

import com.backend.common.utils.RedisUtils;
import com.backend.modules.statistics.service.StatisticsService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Slf4j
@Component
@RequiredArgsConstructor
public class StatisticsTask {

    private final StatisticsService statisticsService;
    private final RedisUtils redisUtils;

    /**
     * 每分钟更新一次统计数据缓存
     */
    @Scheduled(fixedRate = 1 * 60 * 1000)
    public void updateStatisticsCache() {
        log.info("开始更新统计数据缓存");
        try {
            // 清除旧的缓存
            redisUtils.delete("stats:admin:*"); // 管理端缓存
            redisUtils.delete("stats:teacher:*"); // 教师端缓存
            redisUtils.delete("stats:student:*"); // 学生端缓存

            log.info("统计数据缓存更新完成");
        } catch (Exception e) {
            log.error("更新统计数据缓存失败", e);
        }
    }
} 